<html>

<head>
<meta charset="utf-8">

<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>新建网页 1</title>
</head>

<body text="#FFFFFF" bgcolor="#000000">

<p>//其他子程序或中断调用</p>
<p>1. ClearLCD</p>
<p>&nbsp;&nbsp; 中断调用: INT $8A2E</p>
<p>&nbsp;&nbsp; 清屏的作用,使屏幕什么都不显示</p>
<p>　</p>
<p>2. UpdateLCD</p>
<p>&nbsp;&nbsp; 中断调用: INT $8A15</p>
<p>&nbsp;&nbsp; 入口参数:</p>
<p>&nbsp;&nbsp; 显示小字&nbsp; (0402) = 01&nbsp;&nbsp; (0403) = 00</p>
<p>&nbsp;&nbsp; 显示大字&nbsp; (0402) = 00&nbsp;&nbsp; (0403) = 01</p>
<p>&nbsp;&nbsp; (042D) = FF</p>
<p>&nbsp;&nbsp; (042E) = FF</p>
<p>&nbsp; 刷新屏幕,我们要显示信息到屏幕,除了把相应数据送屏幕RAM,还要接着调用这个中断</p>
<p>&nbsp; 例如在屏幕上最左上角显示 &quot;HELLO WORLD&quot;</p>
<p>&nbsp; 先输入信息,从地址2000开始输入</p>
<p>&nbsp; V 2000</p>
<p>&nbsp; 按输入法 输入&quot;HELLO WORLD&quot;</p>
<p>&nbsp; 写显示程序,从地址2010开始</p>
<p>&nbsp; A 2010</p>
<p>&nbsp; 2010: INT $8A2E</p>
<p>&nbsp; 2013: LDX #$0B</p>
<p>&nbsp; 2015: LDA $2000,X</p>
<p>&nbsp; 2018: STA $02BF,X</p>
<p>&nbsp; 201B: DEX</p>
<p>&nbsp; 201C: BNE $2015</p>
<p>&nbsp; 201E: LDA #$01</p>
<p>&nbsp; 2020: STA $0402</p>
<p>&nbsp; 2023: LDA #$00</p>
<p>&nbsp; 2025: STA $0403</p>
<p>&nbsp; 2028: INT&nbsp; $8A15</p>
<p>&nbsp; 202B: INT $C008</p>
<p>&nbsp; 202E: RTS</p>
<p>　</p>
<p>3. ReadKey</p>
<p>&nbsp;&nbsp; 中断调用: INT $C008 或 INT $C007</p>
<p>&nbsp;&nbsp; 读取用户按键的扫描码,送寄存器A</p>
<p>&nbsp;&nbsp; 所以我们使用该中断可以判断用户按了什么键</p>
<p>&nbsp;&nbsp; 我们进入NCTOOLS,按帮助,按 编程资料,按 键盘扫描,就可以获得各键的扫描码</p>
<p>　</p>
<p>4. ReadFlashData</p>
<p>&nbsp;&nbsp; JSR $E917</p>
<p>&nbsp;&nbsp; 功能:读取指定页码的某闪存地址内容</p>
<p>&nbsp;&nbsp; 入口参数: 地址 05B4 放页码</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 地址 
C8 放目标地址低8位</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 地址 
C9 放目标地址高8位</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
寄存器(Y) = 00</p>
<p>&nbsp;&nbsp; 出口参数: 寄存器A 放读取到的数据</p>
<p>　</p>
<p>&nbsp; 例如,读取03页码地址4000的内容</p>
<p>&nbsp; A 2000</p>
<p>&nbsp; 2000: LDA #$03&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;页码送地址05B4</p>
<p>&nbsp; 2002: STA $05B4</p>
<p>&nbsp; 2005: LDA #$00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;目标地址低8位送地址C8</p>
<p>&nbsp; 2007: STA $C8</p>
<p>&nbsp; 2009: LDA #$40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;目标地址高8位送地址C9</p>
<p>&nbsp; 200B: STA $C9</p>
<p>&nbsp; 200D: LDY #$00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;寄存器Y的内容为00</p>
<p>&nbsp; 200F: JSR $E917 </p>
<p>&nbsp; 2012: RTS </p>
<p>&nbsp; 不过这里,寄存器Y的内容不一定就是00,如果是01,上面的程序就是读地址4001的内容</p>
<p>　</p>
<p>5. DELAY</p>
<p>&nbsp;&nbsp; ①JSR $E02A</p>
<p>&nbsp;&nbsp; 延时的作用</p>
<p>&nbsp;&nbsp; 寄存器X设置延时时间长短</p>
<p>&nbsp;&nbsp; 例如: </p>
<p>&nbsp;&nbsp; A 2000</p>
<p>&nbsp;&nbsp; 2000: LDX #$50</p>
<p>&nbsp;&nbsp; 2002: JSR $E02A</p>
<p>&nbsp;&nbsp; 2005: RTS</p>
<p>&nbsp;&nbsp; ②JSR $E02D</p>
<p>&nbsp;&nbsp;&nbsp; 和上面一样,不过是寄存器Y设置延时时间长短</p>
<p>　</p>
<p>6. CheckPower</p>
<p>&nbsp;&nbsp; 电量检测</p>
<p>&nbsp;&nbsp; 中断调用: INT $021A</p>
<p>&nbsp;&nbsp; 若结果为0 代表电力足</p>
<p>&nbsp;&nbsp; 若结果不为0 代表电力不足</p>
<p>&nbsp; 例如 执行电量检测,若电力足,送01到地址3000</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
若电力不足,送00到地址3000</p>
<p>&nbsp; A 2000</p>
<p>&nbsp; 2000: INT $021A</p>
<p>&nbsp; 2003: BEQ $200B</p>
<p>&nbsp; 2005: LDA #$00</p>
<p>&nbsp; 2007: STA $3000</p>
<p>&nbsp; 200A: RTS</p>
<p>&nbsp; 200B: LDA #$01</p>
<p>&nbsp; 200D: STA $3000</p>
<p>&nbsp; 2010: RTS</p>
<p>　</p>
<p>7. 内置DEBUG</p>
<p>&nbsp;&nbsp; 中断调用: INT $C40D</p>
<p>&nbsp;</p>
<p>　</p>
<p>　</p>
<p>　</p>
<p>　</p>
<p>　</p>
<p>　</p>
<p>　</p>

</body>

</html>
